//
//  ChatGroupMgr.h
//  WXIM
//
//  Created by fusuwei on 14-10-21.
//  Copyright (c) 2014年 naren. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "YY_FMDatabase.h"
#import "ChatGroup.h"
#import "ChatGroupMember.h"





@interface ChatGroupMgr : NSObject


/****************************************************************/
//   操作方法
/****************************************************************/

//检查群组、群组成员 table is create in db
+(BOOL)checkChatGroupTableCreatedInDb:(YY_FMDatabase *)db;

#pragma mark -  新增一个GroupBackUp 记录所有已在的群－－包括现在也不存在的群！！！
//保存群对象到GroupbackUp表中 ---GroupBackUp
+(BOOL)saveChatGroupBackUpDic:(NSDictionary*)chatGroupDic;
//保存群对象到GroupList表中
+(BOOL)saveChatGroupDic:(NSDictionary*)chatGroupDic;


//获取某个群Id对应的群Name--GroupBackUp
//目前这个方法只在最近聊天记录的时候使用  and 聊天页面的title显示使用－－－
+ (NSString *)fetchGroupNameInGroupBackUpByGroupId:(NSString *)groupId;
//获取某个群Id对应的群Name
+ (NSString *)fetchGroupNameByGroupId:(NSString *)groupId;


//目前这两个方法 还没有在具体的逻辑中使用到

//判断在GroupBackUp中该GroupId是否存在---GroupBackUp
+(BOOL)judgeInGroupBackUpIsHaveGroupId:(NSString*)groupId;
//判断在GroupList中该GroupId是否存在
+(BOOL)judgeInGroupListIsHaveGroupId:(NSString*)groupId;


//删除群表中某一个群 －－ GroupBackUp
+(BOOL)deleteGroupBackUpByGroupId:(NSString *)groupId;
//删除群表中某一个群
+(BOOL)deleteGroupListByGroupId:(NSString *)groupId;


//更新群组GroupBackUp
+(BOOL)updateChatGroupBackUpDic:(NSDictionary*)chatGroupDic;
//更新群组GroupList
+(BOOL)updateChatGroupDic:(NSDictionary*)chatGroupDic;




//保存群成员对象到GroupMember表中
+(BOOL)saveChatGroupMemberDic:(NSDictionary*)chatGroupMemberDic;

//删除群表中某一个群 －－ GroupBackUp
+(BOOL)deleteGroupBackUpByGroupId:(NSString *)groupId;
//删除群表中某一个群
+(BOOL)deleteGroupListByGroupId:(NSString *)groupId;
//删除群表中的所有群信息
+(BOOL)deleteAllGroupList;
//删除群成员表中某一条记录
+(BOOL)deleteGroupMemberGroupId:(NSString *)groupId withMemberId:(NSString*)memberId;
//删除群成员表中的所有成员记录
+(BOOL)deleteAllGroupMemberByGroupId:(NSString *)groupId;
//判断在GroupMember中该GroupId和memberId是否同时存在一条记录
+(BOOL)judgeInGroupId:(NSString*)groupId ishasTheMemberId:(NSString*)memberId;
//更新群组成员GroupMember
+(BOOL)updateGroupMemberDic:(NSDictionary*)chatGroupMemberDic;



//读取所有群组的列表
+(NSMutableArray*)readAllGroupListArray;
//读取某一群组的信息
+(ChatGroup *)readChatGroupMsgbyGroupId:(NSString*)groupId;
//读取某一群组的所有成员
+(NSMutableArray*)readGroupMemberArrayByGroupId:(NSString*)groupId;
//读取某一群组的某一个成员信息
+(ChatGroupMember*)readGroupMemberByGroupId:(NSString*)groupId withMemberId:(NSString*)memberId;


@end
